package com.more.offer.algorithm.leetcode.lcode70;

/**
 * @author pinoc
 * @date 2021/8/9
 * @description
 * 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
 * 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢？
 * 注意：给定 n 是一个正整数。
 */
public class Solution {
	public static void main(String[] args) {
		int i = climbStairs(19);
		System.out.println(i);
	}
	public static int climbStairs(int n) {
		if(n<=2) {
			return n;
		}
		int f1 = 1;
		int f2 = 2;
		int f3 = 3;
		for (int i = 3; i < n+1; i++) {
			f3 = f1 + f2;
			f1 = f2;
			f2 = f3;
		}
		return f3;
	}
}
